/*
	Copyright 2007-2010 Petr Ohlidal

	This file is a part of GrobMaker

	GrobMaker is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	GrobMaker is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with GrobMaker.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef GROBMAKER_VECTOR
#define GROBMAKER_VECTOR

/** @file */

namespace GrobMaker{

struct Vector{
	float x,y;

	Vector()
		: x(0.0f), y(0.0f){}

	Vector(float x_, float y_)
		:x(x_), y(y_){}

	Vector scale(int origW, int origH, int destW, int destH) const{
		return this->scale(
			static_cast<float>(origW), static_cast<float>(origH),
			static_cast<float>(destW), static_cast<float>(destH));
	}

	Vector scale(float origW, float origH, float destW, float destH) const{
		return Vector((this->x/origW)*destW, (this->y/origH)*destH);
	}
};

} // namespace GrobMaker

#endif //#ifndef GROBMAKER_VECTOR
